home *** CD-ROM | disk | FTP | other *** search
- // Copyright (C) 1997-2002 Alias|Wavefront,
- // a division of Silicon Graphics Limited.
- //
- // The information in this file is provided for the exclusive use of the
- // licensees of Alias|Wavefront. Such users have the right to use, modify,
- // and incorporate this code into other products for purposes authorized
- // by the Alias|Wavefront license agreement, without fee.
- //
- // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- // PERFORMANCE OF THIS SOFTWARE.
- //
- // Alias|Wavefront Script File
- // MODIFY THIS AT YOUR OWN RISK
- //
- // Creation Date: 4 April 1997
- //
- // Description:
- //
- //
- // Procedure Name:
- // performPolyMove(string $operation, int $option)
- //
- // Description:
- // brings a dialog box to set chip off parameters if $option==1
- // if ($option ==0) performs an extrude instead
- // returns a command string otherwise.
- //
- // Input Arguments:
- // $option :
- // $operation : the type of item to move, if empty string: moves the current pick mask component.
- // Return Value:
- // command string iff $option==2
- //
-
- proc setOptionVars (string $comp, int $forceFactorySettings)
- {
- string $ovar="polyMove" + $comp;
-
- // -tx/-translateX -ty/-translateY -tz/-translateZ
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"Translate")`)
- optionVar -floatValue ($ovar+"Translate") 0
- -floatValueAppend ($ovar+"Translate") 0
- -floatValueAppend ($ovar+"Translate") 0;
-
- // -sx/-scaleX -sy/-scaleY -sz/-scaleZ
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"Scale")`)
- optionVar -floatValue ($ovar+"Scale") 1.
- -floatValueAppend ($ovar+"Scale") 1.
- -floatValueAppend ($ovar+"Scale") 1.;
-
- // -rx/-rotateX -ry/-rotateY -rz/-rotateZ
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"Rotate")`)
- optionVar -floatValue ($ovar+"Rotate") 0
- -floatValueAppend ($ovar+"Rotate") 0
- -floatValueAppend ($ovar+"Rotate") 0;
-
-
- // -ran/-random
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"Random")`)
- optionVar -floatValue ($ovar+"Random") 0.;
-
- if ($comp != "map") {
- // -ws/-worldspace
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"WorldSpace")`)
- optionVar -intValue ($ovar+"WorldSpace") 0;
-
- // Manipulator on Global Values.
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"World")`)
- optionVar -intValue ($ovar+"World") 0;
-
- // -ltz/-localTranslateZ
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"LocalTranslate")`)
- optionVar -floatValue ($ovar+"LocalTranslate") 0.0
- -floatValueAppend ($ovar+"LocalTranslate") 0.0
- -floatValueAppend ($ovar+"LocalTranslate") 0.0;
-
- // -lrx/-localRotateX -lry/-localRotateY -lrz/-localRotateZ
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"LocalRotate")`)
- optionVar -floatValue ($ovar+"LocalRotate") 0.0
- -floatValueAppend ($ovar+"LocalRotate") 0.0
- -floatValueAppend ($ovar+"LocalRotate") 0.0;
-
- // -lsx/-localScaleX -lsy/-localScaleY -lsz/-localScaleZ
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"LocalScale")`)
- optionVar -floatValue ($ovar+"LocalScale") 1.
- -floatValueAppend ($ovar+"LocalScale") 1.
- -floatValueAppend ($ovar+"LocalScale") 1.;
-
- if ($comp != "e") {
- // -ldx/-localDirectionX -ldy/-localDirectionY -ldz/-localDirectionZ
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"LocalDirection")`)
- optionVar -floatValue ($ovar+"LocalDirection") 1
- -floatValueAppend ($ovar+"LocalDirection") 0
- -floatValueAppend ($ovar+"LocalDirection") 0;
- }
-
- if ($comp == "f") {
- // -off/-offset
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"Offset")`)
- optionVar -floatValue ($ovar+"Offset") 0.;
- // -g/-gravity
- // -gx/-gravityX -gy/-gravityY -gz/-gravityZ
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"Gravity")`)
- optionVar -floatValue ($ovar+"Gravity") 0.
- -floatValueAppend ($ovar+"Gravity") -1.
- -floatValueAppend ($ovar+"Gravity") 0.;
- // -w/-weight
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"Weight")`)
- optionVar -floatValue ($ovar+"Weight") 0.;
- // -m/-magnet
- // -mx/-magnX -my/-magnY -m/-magnZ
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"Magnet")`)
- optionVar -floatValue ($ovar+"Magnet") 0.
- -floatValueAppend ($ovar+"Magnet") 0.
- -floatValueAppend ($ovar+"Magnet") 0.;
- // -att/-attraction
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"Attr")`)
- optionVar -floatValue ($ovar+"Attr") 0.; // range -2..2
- }
-
- if ($comp == "e") {
- // -lc/localCenter enum <I>0|1|2</I>
- // Local center on the edge. (Middle point : 0, Start point : 1, End point :2)
- if ($forceFactorySettings || !`optionVar -exists ($ovar+"LocalCenter")`)
- optionVar -intValue ($ovar+"LocalCenter") 1;
- }
- }
- }
-
- global proc performPolyMoveSetup (string $comp, string $parent, int $forceFactorySettings)
- {
- setOptionVars($comp, $forceFactorySettings);
- setParent $parent;
- int $ival; int $ivals[3]; float $val; float $vals[3];
-
- string $ovar="polyMove" + $comp;
-
- $fval =`optionVar -query ($ovar+"Random")`;
- floatSliderGrp -edit -value $fval polyMoveRandom;
-
- if ($comp != "map")
- {
- $vals = `optionVar -query ($ovar+"Translate")`;
- floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] -value3 $vals[2] polyMoveTranslate;
-
- $vals=`optionVar -query ($ovar+"Scale")`;
- floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] -value3 $vals[2] polyMoveScale;
-
- $vals=`optionVar -query ($ovar+"Rotate")`;
- floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] -value3 $vals[2] polyMoveRotate;
-
-
- $ival=`optionVar -query ($ovar+"WorldSpace")`;
- checkBoxGrp -edit -value1 $ival polyMoveWorldSpace;
-
- // Manipulator on Global Values.
- // $ival = `optionVar -query ($ovar+"World")`;
- // checkBoxGrp -edit -value1 $ival polyMoveWorld;
-
- if ($comp == "f" || $comp == "e")
- {
- $vals=`optionVar -query ($ovar+"LocalTranslate")`;
- floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] -value3 $vals[2] polyMoveLocalTranslate;
-
- $vals=`optionVar -query ($ovar+"LocalRotate")`;
- floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] -value3 $vals[2] polyMoveLocalRotate;
-
- $vals=`optionVar -query ($ovar+"LocalScale")`;
- floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] -value3 $vals[2] polyMoveLocalScale;
-
- if ($comp == "f")
- {
- $vals=`optionVar -query ($ovar+"LocalDirection")`;
- floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] -value3 $vals[2] polyMoveLocalDirection;
-
- float $val=`optionVar -query ($ovar+"Offset")`;
- floatSliderGrp -edit -value $val polyMoveOffset;
-
- //$vals=`optionVar -query ($ovar+"Gravity")`;
- //floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] -value3 $vals[2] polyMoveGravity;
-
- //$val=`optionVar -query ($ovar+"Weight")`;
- //floatSliderGrp -edit -value $val polyMoveWeight;
-
- //$vals=`optionVar -query ($ovar+"Magnet")`;
- //floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] -value3 $vals[2] polyMoveMagnet;
-
- //$val=`optionVar -query ($ovar+"Attr")`;
- //floatSliderGrp -edit -value $val polyMoveAttr;
- }
- if ($comp == "e")
- {
- $ival = `optionVar -query ($ovar+"LocalCenter")`;
- optionMenuGrp -edit -sl $ival polyMoveLocalCenter;
- }
- }
- else if ($comp == "vtx")
- {
- $vals=`optionVar -query ($ovar+"LocalTranslate")`;
- floatFieldGrp -edit -value1 $vals[2] polyMoveLocalTranslate;
-
- $vals=`optionVar -query ($ovar+"LocalDirection")`;
- floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] -value3 $vals[2] polyMoveLocalDirection;
- }
- }
- else if ($comp == "map")
- {
- $vals = `optionVar -query ($ovar+"Translate")`;
- floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] polyMoveTranslate;
-
- $vals=`optionVar -query ($ovar+"Rotate")`;
- floatFieldGrp -edit -value1 $vals[0] polyMoveRotate;
-
- $vals=`optionVar -query ($ovar+"Scale")`;
- floatFieldGrp -edit -value1 $vals[0] -value2 $vals[1] polyMoveScale;
- }
- }
-
- global proc performPolyMoveCallback (string $comp, string $parent, int $doIt)
- {
- string $ovar="polyMove" + $comp;
- setParent $parent;
-
- optionVar -floatValue ($ovar+"Random")
- `floatSliderGrp -query -value polyMoveRandom`;
-
- if ($comp != "map")
- {
- optionVar -intValue ($ovar+"WorldSpace")
- `checkBoxGrp -query -value1 polyMoveWorldSpace`;
-
- optionVar -floatValue ($ovar+"Translate")
- `floatFieldGrp -query -value1 polyMoveTranslate`
- -floatValueAppend ($ovar+"Translate")
- `floatFieldGrp -query -value2 polyMoveTranslate`
- -floatValueAppend ($ovar+"Translate")
- `floatFieldGrp -query -value3 polyMoveTranslate`;
-
- optionVar -floatValue ($ovar+"Scale")
- `floatFieldGrp -query -value1 polyMoveScale`
- -floatValueAppend ($ovar+"Scale")
- `floatFieldGrp -query -value2 polyMoveScale`
- -floatValueAppend ($ovar+"Scale")
- `floatFieldGrp -query -value3 polyMoveScale`;
-
- optionVar -floatValue ($ovar+"Rotate")
- `floatFieldGrp -query -value1 polyMoveRotate`
- -floatValueAppend ($ovar+"Rotate")
- `floatFieldGrp -query -value2 polyMoveRotate`
- -floatValueAppend ($ovar+"Rotate")
- `floatFieldGrp -query -value3 polyMoveRotate`;
-
-
- // Manipulator on Global Values.
- // optionVar -intValue ($ovar+"World")
- // `checkBoxGrp -query -value1 polyMoveWorld`;
-
- if ($comp == "f" || $comp =="e")
- {
- optionVar -floatValue ($ovar+"LocalTranslate")
- `floatFieldGrp -query -value1 polyMoveLocalTranslate`
- -floatValueAppend ($ovar+"LocalTranslate")
- `floatFieldGrp -query -value2 polyMoveLocalTranslate`
- -floatValueAppend ($ovar+"LocalTranslate")
- `floatFieldGrp -query -value3 polyMoveLocalTranslate`;
-
- optionVar -floatValue ($ovar+"LocalRotate")
- `floatFieldGrp -query -value1 polyMoveLocalRotate`
- -floatValueAppend ($ovar+"LocalRotate")
- `floatFieldGrp -query -value2 polyMoveLocalRotate`
- -floatValueAppend ($ovar+"LocalRotate")
- `floatFieldGrp -query -value3 polyMoveLocalRotate`;
-
- optionVar -floatValue ($ovar+"LocalScale")
- `floatFieldGrp -query -value1 polyMoveLocalScale`
- -floatValueAppend ($ovar+"LocalScale")
- `floatFieldGrp -query -value2 polyMoveLocalScale`
- -floatValueAppend ($ovar+"LocalScale")
- `floatFieldGrp -query -value3 polyMoveLocalScale`;
-
- if ($comp == "f")
- {
- optionVar -floatValue ($ovar+"LocalDirection")
- `floatFieldGrp -query -value1 polyMoveLocalDirection`
- -floatValueAppend ($ovar+"LocalDirection")
- `floatFieldGrp -query -value2 polyMoveLocalDirection`
- -floatValueAppend ($ovar+"LocalDirection")
- `floatFieldGrp -query -value3 polyMoveLocalDirection`;
-
- optionVar -floatValue ($ovar+"Offset")
- `floatSliderGrp -query -value polyMoveOffset`;
-
- //optionVar -floatValue ($ovar+"Gravity")
- //`floatFieldGrp -query -value1 polyMoveGravity`
- //-floatValueAppend ($ovar+"Gravity")
- //`floatFieldGrp -query -value2 polyMoveGravity`
- //-floatValueAppend ($ovar+"Gravity")
- //`floatFieldGrp -query -value3 polyMoveGravity`;
- //optionVar -floatValue ($ovar+"Weight")
- //`floatSliderGrp -query -value polyMoveWeight`;
-
- //optionVar -floatValue ($ovar+"Magnet")
- //`floatFieldGrp -query -value1 polyMoveMagnet`
- //-floatValueAppend ($ovar+"Magnet")
- //`floatFieldGrp -query -value2 polyMoveMagnet`
- //-floatValueAppend ($ovar+"Magnet")
- //`floatFieldGrp -query -value3 polyMoveMagnet`;
- //optionVar -floatValue ($ovar+"Attr")
- //`floatSliderGrp -query -value polyMoveAttr`;
- }
- if ($comp == "e")
- {
- optionVar -intValue ($ovar+"LocalCenter")
- `optionMenuGrp -query -sl polyMoveLocalCenter`;
- }
- }
- else if ($comp == "vtx")
- {
- float $vals[3]=`optionVar -query ($ovar+"LocalTranslate")`;
-
- optionVar -floatValue ($ovar+"LocalTranslate") $vals[0]
- -floatValueAppend ($ovar+"LocalTranslate") $vals[1]
- -floatValueAppend ($ovar+"LocalTranslate")
- `floatFieldGrp -query -value1 polyMoveLocalTranslate`;
-
- optionVar -floatValue ($ovar+"LocalDirection")
- `floatFieldGrp -query -value1 polyMoveLocalDirection`
- -floatValueAppend ($ovar+"LocalDirection")
- `floatFieldGrp -query -value2 polyMoveLocalDirection`
- -floatValueAppend ($ovar+"LocalDirection")
- `floatFieldGrp -query -value3 polyMoveLocalDirection`;
- }
- }
- else if ($comp == "map")
- {
- optionVar -floatValue ($ovar+"Translate")
- `floatFieldGrp -query -value1 polyMoveTranslate`
- -floatValueAppend ($ovar+"Translate")
- `floatFieldGrp -query -value2 polyMoveTranslate`;
-
- optionVar -floatValue ($ovar+"Rotate")
- `floatFieldGrp -query -value1 polyMoveRotate`
- -floatValueAppend ($ovar+"Rotate") 0.;
-
- optionVar -floatValue ($ovar+"Scale")
- `floatFieldGrp -query -value1 polyMoveScale`
- -floatValueAppend ($ovar+"Scale")
- `floatFieldGrp -query -value2 polyMoveScale`;
- }
- if ($doIt) {
- performPolyMove $comp 0;
- string $tmpCmd = "performPolyMove \"" + $comp + "\" 0";
- addToRecentCommandQueue $tmpCmd "PolyMove";
- }
- }
-
- proc polyMoveOptions (string $comp)
- {
- string $commandName = "performPolyMove";
-
- string $callback = ($commandName + "Callback " + $comp);
- string $setup = ($commandName + "Setup " + $comp);
-
- string $layout = getOptionBox();
- setParent $layout;
- setUITemplate -pushTemplate DefaultTemplate;
- scrollLayout;
-
- string $parent = `columnLayout -adj true -columnAttach "both" 5 -columnOffset "both" 5`;
-
- if ($comp != "map")
- {
- // checkBoxGrp -label1 "Manipulator on Global values" polyMoveWorld;
-
- frameLayout -label "Local Values" -cl false -cll true -bv true;
- if ($comp == "f" || $comp == "e")
- {
- columnLayout;
- if ($comp == "f")
- floatSliderGrp -label "Offset" -min -2.0 -max 2.0 -fmn -100 -fmx 100 polyMoveOffset;
- floatFieldGrp -label "Translate" -numberOfFields 3 polyMoveLocalTranslate;
- floatFieldGrp -label "Rotate" -numberOfFields 3 polyMoveLocalRotate;
- floatFieldGrp -label "Scale" -numberOfFields 3 polyMoveLocalScale;
- if ($comp == "f")
- floatFieldGrp -label "Direction" -numberOfFields 3 polyMoveLocalDirection;
- if ($comp == "e")
- {
- optionMenuGrp -l "Local center" polyMoveLocalCenter;
- menuItem -l "middle" LocalCenMiddleMenuItem;
- menuItem -l "start" LocalCenStartMenuItem;
- menuItem -l "end" LocalCenEndMenuItem;
- }
- setParent ..;
- }
- else if ($comp == "vtx")
- {
- columnLayout;
- floatFieldGrp -label "Translate along normal" -numberOfFields 1 polyMoveLocalTranslate;
- floatFieldGrp -label "Direction" -numberOfFields 3 polyMoveLocalDirection;
- setParent ..;
- }
- setParent ..;
- }
-
- frameLayout -label "Global Values" -cl false -cll true -bv true;
- columnLayout;
- int $num=3; if ($comp =="map") $num=2;
- floatFieldGrp -label "Translate" -numberOfFields $num polyMoveTranslate;
- floatFieldGrp -label "Scale" -numberOfFields $num polyMoveScale;
- if ($comp =="map") {
- floatFieldGrp -label "Rotate" -numberOfFields 1 polyMoveRotate;
- } else {
- floatFieldGrp -label "Rotate" -numberOfFields 3 polyMoveRotate;
- }
- setParent ..;
- setParent ..;
- frameLayout -label "Other Values" -cl false -cll true -bv true;
- columnLayout;
- floatSliderGrp -label "Random" polyMoveRandom;
- if ($comp != "map")
- checkBoxGrp -label1 "World Space Coords." polyMoveWorldSpace;
- setParent ..;
- setParent ..;
-
- //if ($comp == "f") {
- //frameLayout -label "Dynamic Values" -cl false -cll true -bv true;
- //columnLayout;
- //floatFieldGrp -label "Gravity" -numberOfFields 3 polyMoveGravity;
- //floatSliderGrp -label "Weight" -min 0. -max 100.0 polyMoveWeight;
- //floatFieldGrp -label "Magnet" -numberOfFields 3 polyMoveMagnet;
- //floatSliderGrp -label "Attraction" -min -2.0 -max 2.0 polyMoveAttr;
- //setParent ..;
- //setParent ..;
- //}
-
- setUITemplate -popTemplate;
-
- string $lbl="";
- if ($comp == "f") $lbl="Move Face";
- else if ($comp == "e") $lbl="Move Edge";
- else if ($comp == "vtx")$lbl="Move Vertex";
- else if ($comp == "map")$lbl="Move UVs";
-
- string $applyBtn = getOptionBoxApplyBtn();
- button -edit -label $lbl
- -command ($callback + " " + $parent + " " + 1)
- $applyBtn;
- string $saveBtn = getOptionBoxSaveBtn();
- button -edit
- -command ($callback + " " + $parent + " " + 0 + "; hideOptionBox")
- $saveBtn;
- string $resetBtn = getOptionBoxResetBtn();
- button -edit
- -command ($setup + " " + $parent + " " + 1)
- $resetBtn;
-
- setOptionBoxTitle(($lbl + " Options"));
-
- // Customize the 'Help' menu item text.
- //
- setOptionBoxHelpTag( "MoveComponent" );
-
- eval (($setup + " " + $parent + " " + 0));
- scriptJob -protected
- -parent $parent
- -event "SelectTypeChanged" "evalDeferred \"performPolyMove \\\"\\\" 1\"";
-
- showOptionBox();
- }
-
- proc string assembleCmd (string $comp, float $centerX, float $centerY, float $centerZ)
- {
- global int $polyGroupComponents;
- string $ovar="polyMove"+$comp;
- string $cmd="";
-
- if ($comp == "f") $cmd="polyMoveFacet";
- else if ($comp == "e") $cmd="polyMoveEdge";
- else if ($comp == "vtx") $cmd="polyMoveVertex";
- else if ($comp == "map") $cmd="polyMoveUV";
-
- // history flag
- int $doHistory = `constructionHistory -q -toggle`;
- $cmd = ($cmd + " -ch " + $doHistory);
-
- float $translate[3] = `optionVar -query ($ovar+"Translate")`;
- float $rotate[3] = `optionVar -query ($ovar+"Rotate")`;
- float $scale[3] = `optionVar -query ($ovar+"Scale")`;
-
- float $crand = `optionVar -query ($ovar+"Random")`;
- int $ws = `optionVar -query ($ovar+"WordlSpace")`;
-
- if ($comp != "map")
- {
- float $pivot[3];
- $pivot[0] = $centerX; $pivot[1] = $centerY; $pivot[2] = $centerZ;
- float $lt[3]= `optionVar -query ($ovar+"LocalTranslate")`;
- float $ld[3];
- $cmd=($cmd
- + " -pvx " + $pivot[0] + " -pvy " + $pivot[1] + " -pvz " + $pivot[2]
- + " -tx " + $translate[0] + " -ty " + $translate[1] + " -tz " + $translate[2]
- + " -rx " + $rotate[0] + " -ry " + $rotate[1] + " -rz " + $rotate[2]
- + " -sx " + $scale[0] + " -sy " + $scale[1] + " -sz " + $scale[2]
- + " -ran " + $crand
- + " -ltz " + $lt[2] + " -ws " + $ws);
- if ($comp == "f" || $comp == "e")
- {
- float $lr[3]=`optionVar -query ($ovar+"LocalRotate")`;
- float $los[3]=`optionVar -query ($ovar+"LocalScale")`;
- $cmd = ($cmd
- + " -ltx " + $lt[0] + " -lty " + $lt[1]
- + " -lrx " + $lr[0] + " -lry " + $lr[1] + " -lrz " + $lr[2]
- + " -lsx " + $los[0] + " -lsy " + $los[1] + " -lsz " + $los[2]);
- if ($comp == "f")
- {
- $ld=`optionVar -query ($ovar+"LocalDirection")`;
- float $offset = `optionVar -query ($ovar+"Offset")`;
- float $grav[3]=`optionVar -query ($ovar+"Gravity")`;
- float $magn[3]=`optionVar -query ($ovar+"Magnet")`;
- float $attr=`optionVar -query ($ovar+"Attr")`;
- float $weight=`optionVar -query ($ovar+"Weight")`;
- $cmd =($cmd
- + " -ldx " + $ld[0] + " -ldy " + $ld[1] + " -ldz " + $ld[2]
- + " -off " + $offset + " -w " + $weight
- + " -gx " + $grav[0] + " -gy " + $grav[1] + " -gz " + $grav[2]
- + " -att " + $attr
- + " -mx " + $magn[0] + " -my " + $magn[1] + " -mz " + $magn[2]);
- }
- if ($comp == "e")
- {
- int $localCenter = `optionVar -query ($ovar+"LocalCenter")` -1;
- $cmd=($cmd + " -lc " + $localCenter);
- }
- }
- else if ($comp == "vtx")
- {
- $ld=`optionVar -query ($ovar+"LocalDirection")`;
- $cmd =($cmd
- + " -ldx " + $ld[0] + " -ldy " + $ld[1] + " -ldz " + $ld[2]);
- }
- }
- else
- {
- float $pivot[2];
- $pivot[0] = $centerX; $pivot[1] = $centerY;
- $cmd=($cmd
- + " -tu " + $translate[0] + " -tv " + $translate[1]
- + " -ra " + $rotate[0]
- + " -su " + $scale[0] + " -sv " + $scale[1]
- + " -pvu " + $pivot[0] + " -pvv " + $pivot[1]
- + " -ran " + $crand );
- }
-
- return $cmd;
- }
-
- global proc string performPolyMove (string $comp, int $option)
- {
- string $cmd;
- string $lbl;
- string $sel[];
- if ($comp == "") {
- if (`selectType -q -pf`) $comp="f";
- else if (`selectType -q -pv`) $comp="vtx";
- else if (`selectType -q -pe`) $comp="e";
- else if (`selectType -q -puv`) $comp="map";
- else $comp="vtx";
- }
- if ($comp == "f") $lbl="polyMoveFacet";
- else if ($comp == "e") $lbl="polyMoveEdge";
- else if ($comp == "vtx") $lbl="polyMoveVertex";
- else if ($comp == "map") $lbl="polyMoveUV";
- else {
- warning "polygon vertices, edges, faces or UVs must be selected to move them.";
- return "";
- }
-
- switch ($option) {
- case 0:
- $sel=`polyCheckSelection $lbl $comp`;
- if (size($sel) != 0) {
- float $pivot[3];
- if( $comp != "map" )
- {
- float $bbox[6] = `polyEvaluate -bc`;
- $pivot[0] = ($bbox[1] + $bbox[0]) / 2.0;
- $pivot[1] = ($bbox[3] + $bbox[2]) / 2.0;
- $pivot[2] = ($bbox[5] + $bbox[4]) / 2.0;
- }
- else
- {
- float $bbox[4] = `polyEvaluate -bc2`;
- $pivot[0] = ($bbox[1] + $bbox[0]) / 2.0;
- $pivot[1] = ($bbox[3] + $bbox[2]) / 2.0;
- $pivot[2] = 0.0;
- }
- setOptionVars($comp, false);
- int $index=0;
- string $oldnodes[]=`ls -sl -dep`;
- if (size($oldnodes) > 0)
- select -d $oldnodes;
- while (size($sel) > $index) {
- string $cursel[];
- string $res[];
- $index=`polyNextSelectionBatch $sel $cursel $index`;
- string $cmd=`assembleCmd $comp $pivot[0] $pivot[1] $pivot[2]`;
- for ($i=0; $i<size($cursel); $i++)
- $cmd=($cmd + " " + $cursel[$i]);
- $res=`evalEcho $cmd`;
-
- if (size($res) > 0) {
- select -add $res;
- }
-
- }
- clear $sel;
- // *** should perhaps remove the following line
- // and restore the current ctx instead.
- setToolTo ShowManips;
- }
- break;
- case 1: polyMoveOptions $comp; break;
- default:
- // useless, but we'd like a fix: setOptionVars($comp, false);
- $cmd = "performPolyMove \"\" 0";
- }
- return $cmd;
- }
-